//这个配置文件其实就是一个js文件，通过node中的模块，向外暴露一个配置对象
const path = require('path')
const htmlWebpackPlugin = require('html-webpack-plugin')
const VueLoaderPlugin = require('vue-loader/lib/plugin');
module.exports = {
    entry:path.join(__dirname,'./src/main.js'),
    output:{
        path:path.join(__dirname,'./dist'),
        filename:'bundle.js'
    },
    plugins:[
        new htmlWebpackPlugin({
            template:path.join(__dirname,'./src/index.html'),
            filename:'index.html'
        }),
        new VueLoaderPlugin()

    ],
    module:{   //这个节点用于配置所有的第三方模块加载器
        rules:[   //第三方规则
            {
                test:/\.css$/,use:['style-loader','css-loader']
                 //test是匹配规则 use是使用那种第三方类库
            },
            {
                test:/\.less$/,use:['style-loader','css-loader','less-loader']
                //test是匹配规则 use是使用那种第三方类库
            },
            {
                test:/\.jpg|png|gif|bmg|jpeg$/,use:'url-loader?limit=30004&name=[hash:8]-[name].[ext]'
                //test是匹配规则 use是使用那种第三方类库
            },
            {
                test:/\.ttf|eot|svg|woff|woff2$/,use:'url-loader'
                //test是匹配规则 use是使用那种第三方类库
            },
            {
                test:/\.js$/,use:'babel-loader',exclude:/node_modules/
                //test是匹配规则 use是使用那种第三方类库
            },
            {
                test:/\.vue$/,use:'vue-loader'
                //test是匹配规则 use是使用那种第三方类库
            },
            {
                test: /\.json$/, use: 'json-loader'
            },
        ]
    },
    // resolve:{
    //     alias:{
    //         "vue$":"vue/dist/vue.js"
    //     }
    // }
}
